平成20年 春期 基本情報技術者 午後 問02
問02 部分文字列の出現回数を数える次のプログラムの説明及びプログラムを読んで,設問1,2に答えよ。 〔プログラムの説明〕 長さが Textlen の文字列 SourceText の中で,長さが Patlen の文字列 Pattern と一致する部分の文字列(以下,部分文字列という)の出現回数を数える 関数 MatchCounter である。ここで, 0 < Patlen ≦ Textlen である。 (1) MatchCounter の処理手順は,次のとおりである。 @ 一致する部分文字列の出現回数を数える変数 Counter の値を0に初期化する。 A SourceText の比較開始位置を先頭から順に1文字ずつ後ろにずらしながら, その比較開始位置から始まる長さ Patlen の文字列と Pattern が一致するかどうかを調べ, 一致したら出現回数 Counter の値に1を加算する。 B Counter の値を返す。
(2) MatchCounter の引数と返却値の仕様を表に示す。文字列は文字型配列の各要素に 1文字ずつ格納されている。また,各配列の添字は0から始まる。
設問1 プログラム中の と入れる正しい答えを, 解答群の中から選べ。 a に関する解答群 ウ i + Textlen ≦ Patlen エ i + Textlen < Patlen
イ SourceText[j] = Pattern[k] ウ SourceText[k] = Pattern[i] エ SotrceText[k] = Pattern[j]
設問2 Pattern と一致した部分文字列は以降の検索対象から外すように, このプログラムを変更する。 例えば, SourceText とPattern が図に示す文字列であるとき,プログラムでは, 比較開始位置を@,A,B,…と移動して,一致する部分文字列の出現回数を求めるので, 下線の部分文字列と二重下線の部分文字列がともに数えられる。 これに対して,一致した部分文字列を検索対象から外す場合は,比較開始位 置を@,A,D,…と移動するので,二重下線の部分文字列は数えられない。
図 比較開始位置を変更する場合の例 解答群
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| ||||||||||||||||||||||||